#ifndef PATH_H
#define PATH_H

#include "graph.h"
#include <QSharedData>
#include <QSharedDataPointer>

class PathPrivate : public QSharedData
{
public:
	QList<Edge> edges;
	Vertex begin;
	Vertex end;
};

class Path
{
public:
	Path();
	Path(const Path &other);
	void setBegin(Vertex v);
	bool addEdge(Edge e);
	Vertex begin() const;
	Vertex end() const;
	QList<Vertex> vertexSequence() const;
	QList<Edge> edgeSequence() const;
private:
	QSharedDataPointer<PathPrivate> d;
};

#endif // PATH_H
